iT邦幫忙

2024 iThome 鐵人賽

DAY 28
0
Mobile Development

我的 Android 工具箱系列 第 28

Day 28 - [版本控管] 03-使用 Merge 和 Rebase 合併的差異

  • 分享至 

  • xImage
  •  

情境

在團隊開發中,經常會遇到這樣的情況:當你在某個分支上進行開發並準備推送(push)你的 commit 時,發現同一分支上已經有其他人的 commit 被推送上去了。在這種情況下,你無法直接推送自己的 commit,因為會產生衝突。此時有兩種常見的解決方法:Merge 和 Rebase,這兩者都可以用來整合你和其他人所做的程式變更。

Merge 和 Rebase

origin

Merge

Merge 是將另一個分支的變更合併到你當前的分支。Merge 會保留兩個分支的歷史紀錄,並且會產生一個新的 commit,記錄此次合併過程。

  • 主要特點:會紀錄合併歷史、衝突檔案。合併的結果會產生一個新的合併 commit,這個 commit 是兩條分支的「交點」。

使用 Merge

  1. Pull 遠端程式,合併進本地本
    merge1
  2. 可能需要解決衝突
    merge2
  3. Merge 後會有「交點」
    merge3

Rebase

會重新改變本地 Commit 點的基準點,變成以遠端最新的異動點為基準,本地 Commit 會變成最新異動點的下一個點,也就相當於整合自己與他人的程式。

  • 主要特點:保持分支線簡潔,不會產生額外的合併 commit。

使用 Rebase

  1. 對著遠端的 Commit 點選 Rebase
    rebase1
  2. 可能需要解決衝突
    rebase2
  3. 解決完衝突,完成 Rebase
    rebase3
  4. Rebase 完不會有交點,也不會有衝突紀錄
    rebase4


上一篇
Day 27 - [版本控管] 02-暫存程式碼-Git Stash vs IntelliJ Shelf
下一篇
Day 29 - [Demo] 01-手機投影工具-Vyson & 內建 Device Mirroring
系列文
我的 Android 工具箱30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言